"""
    json模块的常用函数：
        函数名称                    描述说明
        json.dumps(obj)            将 python 数据类型转成 JSON 格式过程，编码过程
        json.loads(s)              将 JSON 格式字符串转换成 Python 数据类型，解码过程
        json.dump(obj, file)       与 dump() 功能相同，将转换结果存储到文件 file 中
        json.load(file)            与 loads() 功能相同，从文件 file 中读入数据
"""
import json
# 准备高维数据
lst = [
    {'name': '张三', 'age': 20, 'score': 90},
    {'name': '李四', 'age': 30, 'score': 95},
    {'name': '王五', 'age': 40, 'score': 100},
]

# ensure_ascii正常显示中文，indent增加数据的缩进，美观用的，JSON格式的字符串更有可读性
s = json.dumps(lst, ensure_ascii=False, indent=4)
print(type(s))
print(s)

# 解码
lst2 = json.loads(s)
print(type(s))
print(lst2)

# 编码到文件中
with open('student.txt', 'w', encoding='utf-8') as file:
    json.dump(lst, file, ensure_ascii=False, indent=4)

# 解码到程序
with open('student.txt', 'r', encoding='utf-8') as file:
    lst3 = json.load(file)  # 直接是列表类型
    print(type(lst3))
    print(lst3)

